本日閱讀進度:第12章 高階物件結構(536~553頁)
重點摘要:
var kitty = new Cat("Kitty", "white", 1, "mixed", "male"); // 原本長這樣
var kittyParams = {name: "Kitty", // 可改寫成這樣
color: "white",
weight: 1,
breed: "mixed",
gender: "male"};
var kitty = new Cat(kittyParams); // 再將單一引數傳遞給Cat建構程序
function Cat(params) { // 把Cat建構程序的5個參數代換成一個參數params,也就是我們要傳入的物件
this.name = params.name;
this.color = params.color;
this.weight = params.weight;
this.breed = params.breed;
this.gender = params.gender;
}
typeof
運算符,它會回傳其運算元的資料型別。instanceof
。// 接續上述程式碼
if (kitty instanceof Cat) { //如果是的話,instanceof會回傳true
console.log("Yes, it's a Cat");
};
// "Yes, it's a Cat"
kitty.owner = "Mickey"; // 添加新的屬性
delete kitty.weight; // 使用delete移除一個屬性
甚至可以添加新的方法:
kitty.trust = function(person) {
return (person === "Mickey");
};
一個有趣的問題是,如果我們移除了kitty所有的屬性,它仍舊是Cat嗎?instanceof
會告訴你:是的。
讓物件大量發生的高階物件結構就介紹到這,鐵人賽終於快要倒數啦!
本文同步發表於cichen